package com.partner.action.scenicspot;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.partner.bean.scenicspot.TScenicspotVo;
import com.partner.frame.Result;
import com.partner.frame.common.CommonInstans;
import com.partner.frame.common.ConstantsMark;
import com.partner.service.scenicspot.TScenicspotService;

/** 
 * @ClassName: ScenicSpotManagerAcrtion 
 * @Description: 景区管理控制器
 * @author Lizuoyang 
 * @date 2017年5月6日 上午11:22:46  
 */ 
@Controller
@RequestMapping("/scenicspot")
public class ScenicSpotManagerAcrtion {
	
	@Autowired
	private TScenicspotService scenicspotService;
	
	/**
	 * @Title      : changeScenicSpotId 
	 * @Description:用户在index.jsp选择景区列表中的景区  改变session中 景区ID
	 * @param request
	 * @return     : Result
	 * @author     : Lizuoyang
	 * Create Date : 2017年5月6日 上午11:24:35
	 * @throws 
	 */
	@RequestMapping(value="/changeScenicSpotId",method=RequestMethod.POST)
	@ResponseBody
	public Result changeScenicSpotId(HttpServletRequest request,int id){
		Result r = new Result();
		TScenicspotVo tScenicspotVo = scenicspotService.getScenicSpotByPrimarykey(id);
		
		//将当前选择的景区ID保存到session
		request.getSession().setAttribute(CommonInstans.SCENICSPOTID,tScenicspotVo.getId());
		request.getSession().setAttribute(CommonInstans.SCENICSPOTNAME,tScenicspotVo.getName());
		
		r.setDesc(ConstantsMark.SCENICSPOT_CHANGESUCCESS);
		r.setObject(tScenicspotVo);
		return r;
	}
	
	/**
	 * @Title      : scenicspotlist 
	 * @Description: 系统管理 --> 景区列表  -->  查询出系统中所有景区数据
	 * @param scenicname
	 * @return     : ModelAndView
	 * @author     : Lizuoyang
	 * Create Date : 2017年5月8日 上午10:28:38
	 * @throws 
	 */
	@RequestMapping(value="/sysscenicspotlist")
	public ModelAndView scenicspotlist(String scenicname){
		ModelAndView mv = new ModelAndView();
		
		//所有景区
		List<TScenicspotVo> allScenicSpot = scenicspotService.getAllScenicSpot(scenicname,null);
		
		mv.addObject("all", allScenicSpot);
		mv.addObject("scenicname", scenicname);
		mv.setViewName("/pages/sysright/scenicspotlist");
		return mv;
	}
	
	/**
	 * @Title      : scenicspotbeforeupd 
	 * @Description: 系统管理 --> 景区列表  --> 点击编辑跳转至景区编辑页面
	 * @param id
	 * @return     : ModelAndView
	 * @author     : Lizuoyang
	 * Create Date : 2017年5月8日 上午10:58:25
	 * @throws 
	 */
	@RequestMapping(value="/sysscenicspotbeforeupd",method=RequestMethod.GET)
	public ModelAndView sysscenicspotbeforeupd(int id){
		ModelAndView mv = new ModelAndView();
		
		//根据主键ID获取景区信息
		TScenicspotVo scenicSpotByPrimarykey = scenicspotService.getScenicSpotByPrimarykey(id);
		
		mv.addObject("sce", scenicSpotByPrimarykey);
		mv.setViewName("/pages/sysright/scenicspotupd");
		return mv;
	}
	
	/**
	 * @Title      : sysscenicspotafterupd 
	 * @Description: 系统管理 --> 景区列表  --> 编辑景区 --> 修改景区名称和景区地址
	 * @param vo
	 * @return     : Result
	 * @author     : Lizuoyang
	 * Create Date : 2017年5月8日 上午11:26:49
	 * @throws 
	 */
	@RequestMapping(value="/sysscenicspotafterupd",method=RequestMethod.POST)
	@ResponseBody
	public Result sysscenicspotafterupd(TScenicspotVo vo){
		Result r = new Result();
		
		//修改景区
		scenicspotService.updateSceniSpotByPrimaryKeySelective(vo);
		r.setDesc(ConstantsMark.INFO_UPDATESUCCESS);
		return r;
	}
	
	/**
	 * @Title      : sysscenicspotbeforeadd 
	 * @Description: 系统管理 --> 景区列表  --> 新增景区 --> 跳转界面
	 * @return     : ModelAndView
	 * @author     : Lizuoyang
	 * Create Date : 2017年5月8日 上午11:34:41
	 * @throws 
	 */
	@RequestMapping(value="sysscenicspotbeforeadd",method=RequestMethod.GET)
	public ModelAndView sysscenicspotbeforeadd(){
		ModelAndView mv = new ModelAndView();
		mv.setViewName("/pages/sysright/scenicspotadd");
		return mv;
	}
	
	/**
	 * @Title      : sysscenicspotafterupd 
	 * @Description: 系统管理 --> 景区列表  --> 新增景区 --> 新增景区名称和景区地址
	 * @param vo
	 * @return     : Result
	 * @author     : Lizuoyang
	 * Create Date : 2017年5月8日 上午11:26:49
	 * @throws 
	 */
	@RequestMapping(value="/sysscenicspotafteradd",method=RequestMethod.POST)
	@ResponseBody
	public Result sysscenicspotafteradd(TScenicspotVo vo){
		Result r = new Result();
		
		//新增景区
		scenicspotService.insertScenicSpot(vo);
		
		r.setDesc(ConstantsMark.INFO_SAVESUCCESS);
		return r;
	}
	
	/**
	 * @Title      : deleteScenicSpot 
	 * @Description: 系统管理 --> 景区列表  --> 禁用 /启用 景区
	 * @param id
	 * @return     : Result
	 * @author     : Lizuoyang
	 * Create Date : 2017年5月8日 上午11:38:05
	 * @throws 
	 */
	@RequestMapping(value="/setScenicSpotIsuse",method=RequestMethod.POST)
	@ResponseBody
	public Result deleteScenicSpot(int id,String isuse){
		Result r = new Result();
		
		TScenicspotVo sce = new TScenicspotVo();
		sce.setId(id);
		sce.setIsuse(isuse);
		
		scenicspotService.updateSceniSpotByPrimaryKeySelective(sce);
		
		r.setObject(ConstantsMark.INFO_UPDATESUCCESS);
		return r;
	}
	
	/**
	 * @Title      : scenicspotInfolist 
	 * @Description: 景区信息编辑
	 * @return     : ModelAndView
	 * @author     : dwr
	 * Create Date : 2017年5月8日 上午16:24:41
	 * @throws 
	 */
	@RequestMapping(value="scenicspotInfoList",method=RequestMethod.GET)
	public ModelAndView scenicspotInfoList(HttpServletRequest request){
		ModelAndView mv = new ModelAndView();

		String scenicspotid = "" ;
		if(request.getSession().getAttribute(CommonInstans.SCENICSPOTID)!=null){;
			scenicspotid = request.getSession().getAttribute(CommonInstans.SCENICSPOTID).toString();
		}
		//根据主键ID获取景区信息
		TScenicspotVo scenicSpot = scenicspotService.getScenicSpotByPrimarykey(Integer.valueOf(scenicspotid));
		List<TScenicspotVo> list = new ArrayList<>();
		list.add(scenicSpot);
		mv.addObject("rows", list);
		
		mv.setViewName("/pages/scenic/scenicinfo/scenicspotinfolist");
		
		return mv;
	}
	
	/**
	 * @Title      : scenicspotInfoEdit 
	 * @Description: 进入景区信息编辑
	 * @return     : ModelAndView
	 * @author     : dwr
	 * Create Date : 2017年5月8日 上午16:24:41
	 * @throws 
	 */
	@RequestMapping(value="scenicspotInfoEdit",method=RequestMethod.GET)
	public ModelAndView scenicspotInfoEdit(int id){
		ModelAndView mv = new ModelAndView();
		
		//根据主键ID获取景区信息
		TScenicspotVo scenicSpot = scenicspotService.getScenicSpotByPrimarykey(id);
		mv.addObject("scenic", scenicSpot);
		
		mv.setViewName("/pages/scenic/scenicinfo/scenicinfoedit");
		return mv;
	}
	/**
	 * @Title      : scenicspotInfoSave 
	 * @Description: 进入景区信息编辑
	 * @return     : ModelAndView
	 * @author     : dwr
	 * Create Date : 2017年5月9日 上午10:24:41
	 * @throws 
	 */
	@RequestMapping(value="scenicspotInfoSave",method=RequestMethod.POST)
	public Result scenicspotInfoSave(TScenicspotVo vo){
		Result rs = new Result();
		//修改景区
		scenicspotService.updateSceniSpotByPrimaryKeySelective(vo);
		
		rs.setDesc(ConstantsMark.INFO_SAVESUCCESS);
		return rs;
	}

}
